package com.loeng.module.infra.service.job;

import com.loeng.framework.common.pojo.PageResult;
import com.loeng.framework.quartz.core.service.JobLogFrameworkService;
import com.loeng.module.infra.controller.admin.job.vo.log.JobLogPageReqVO;
import com.loeng.module.infra.controller.admin.job.vo.log.JobLogSaveReqVO;
import com.loeng.module.infra.dal.dataobject.job.JobLogDO;

import javax.validation.Valid;

/**
 * 定时任务日志 Service 接口
 *
 * @author loeng zhuo
 */
public interface JobLogService extends JobLogFrameworkService {

    /**
     * 创建定时任务日志
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createJobLog(@Valid JobLogSaveReqVO createReqVO);

    /**
     * 更新定时任务日志
     *
     * @param updateReqVO 更新信息
     */
    void updateJobLog(@Valid JobLogSaveReqVO updateReqVO);

    /**
     * 删除定时任务日志
     *
     * @param id 编号
     */
    void deleteJobLog(Long id);

    /**
     * 获得定时任务日志
     *
     * @param id 编号
     * @return 定时任务日志
     */
    JobLogDO getJobLog(Long id);

    /**
     * 获得定时任务日志分页
     *
     * @param pageReqVO 分页查询
     * @return 定时任务日志分页
     */
    PageResult<JobLogDO> getJobLogPage(JobLogPageReqVO pageReqVO);

    /**
     * 清理 exceedDay 天前的任务日志
     *
     * @param exceedDay 超过多少天就进行清理
     * @param deleteLimit 清理的间隔条数
     */
    Integer cleanJobLog(Integer exceedDay, Integer deleteLimit);


}